from data_pretreatment import pretreatment
from model_predict import Predict


def main():
    # 预处理
    # 缺失值 + 方差
    # x_train, x_test, y_train, y_test = pretreatment.pretreatment_base()
    # 缺失值 + 方差 + pca
    # x_train, x_test, y_train, y_test = pretreatment.pre_pca()
    # 缺失值 + 方差 + ipca
    # x_train, x_test, y_train, y_test = pretreatment.pre_ipca()
    # 缺失值 + 方差 + lda
    # x_train, x_test, y_train, y_test = pretreatment.pre_lda()
    # 缺失值 + 方差 + fa
    # x_train, x_test, y_train, y_test = pretreatment.pre_fa()
    # 缺失值 + 方差 + ica
    # x_train, x_test, y_train, y_test = pretreatment.pre_ica()
    # 缺失值 + 方差 + nmf
    # x_train, x_test, y_train, y_test = pretreatment.pre_nmf()
    # 缺失值 + 方差 + latentda
    # x_train, x_test, y_train, y_test = pretreatment.pre_latentda()
    # 缺失值 + 方差 + tsne
    # x_train, x_test, y_train, y_test = pretreatment.pre_tsne()
    # svd
    x_train, x_test, y_train, y_test = pretreatment.pre_svd()

    # 建模预测
    predict = Predict(x_train, x_test, y_train, y_test)
    # 逻辑回归
    # predict.logistic_model()
    # svm
    # predict.svm_model()
    # 决策树
    # predict.tree_model()
    # sgd
    # predict.sgd_model()
    # knn
    # predict.knn_model()
    # 高斯分类
    # predict.gpc_model()
    # 朴素贝叶斯 GaussianNB
    # predict.naive_bayes_gaussina_model()
    # 朴素贝叶斯 BernoulliNB
    # predict.naive_bayes_bernoul_model()
    # 神经网络
    # predict.nn_model()

    # tensorflow 逻辑回归
    # predict.tf_logistic_model()

    # xgboost
    # predict.xgboost_model()
    predict.xgboost_classifier()


if __name__ == '__main__':
    main()
